package cm.ph.shopping.facade.order.service;

import java.util.List;

import com.ph.shopping.common.util.result.Result;

import cm.ph.shopping.facade.order.entity.PhAgentOrder;
import cm.ph.shopping.facade.order.entity.PhManagerOrderAddress;
import cm.ph.shopping.facade.order.entity.PhMerchantOrder;
import cm.ph.shopping.facade.order.vo.PhAgentOrderProductsVo;
import cm.ph.shopping.facade.order.vo.PhLogisticsVo;
import cm.ph.shopping.facade.order.vo.PhManagerOrderAddressVo;
import cm.ph.shopping.facade.order.vo.PhMerchantOrderProductsVo;
import cm.ph.shopping.facade.order.vo.PhProductForOderUseVo;

/**
 * @项目：phshopping-facade-
 *
 * @描述： 
 *
 * @作者： yyg
 *
 * @创建时间：2017年3月24日 下午8:29:18
 *
 * @Copyright by yyg
 */
public interface IPhManagerOrderAddressService {

	/**
	 * 查询地址信息多条、单条
	 * 
	 * @param addressVo
	 * @return
	 * @author yyg
	 */
	public List<PhManagerOrderAddressVo> findAddress(PhManagerOrderAddressVo addressVo);

	/**
	 * 添加地址方法
	 * 
	 * @param address
	 * @return
	 * @author yyg
	 */
	Result addOrderAddress(PhManagerOrderAddress address);

	/**
	 * 查询商户订单下的商品方法
	 * @param orderProductsVo
	 * @return
	 * @author yyg
	 */
	List<PhMerchantOrderProductsVo> findOrderProducts(PhMerchantOrderProductsVo orderProductsVo);
	
	/**
	 * 商户取消订单方法  
	 * @param orderId  订单主键
	 * @param list   对应商品集合
	 * @return
	 * @throws Exception 
	 * @author yyg
	 *
	 */
	Result orderProductBack(PhMerchantOrder order, List<PhProductForOderUseVo> list) throws Exception;
	
	/**
	 * 获取物流信息
	 * @param logisticsVo
	 * @return
	 */
	List<PhLogisticsVo> findLogistics(PhLogisticsVo logisticsVo);

		
	/**
	 * 查询代理商订单下的商品方法
	 * @param orderProductsVo
	 * @return
	 * @author yyg
	 */
	List<PhAgentOrderProductsVo> findAgentOrderProducts(PhAgentOrderProductsVo agentOrderProductsVo);

	/**
	 * 代理商取消订单方法  
	 * @param orderId  订单主键
	 * @param list   对应商品集合
	 * @return
	 * @throws Exception 
	 *@author yyg
	 */
	
	Result agentOrderProductBack(PhAgentOrder order, List<PhProductForOderUseVo> list) throws Exception;
	
	/**
	 *	 通过id 查询物流信息 
	 * @param id
	 * @return
	 *@author yyg
	 */
	PhLogisticsVo findLogisticsById(Long id);

}
